layoutmanager: Never pass NULL pointers to ->measure
authorTimm Bäder <mail@baedert.org>
Sat, 25 May 2019 06:59:20 +0000 (08:59 +0200)
committerTimm Bäder <mail@baedert.org>
Mon, 27 May 2019 16:12:26 +0000 (18:12 +0200)
We don't do that in GtkWidgetClass::measure() implementations either, so
make the semantics match.

gtk/gtklayoutmanager.c

index c82d8f88d8336f5998d417e297cb11a4ddfd5610..1325c339ba3cc204f24e3705192682c85a719eec 100644 (file)
@@ -264,6 +264,11 @@ gtk_layout_manager_measure (GtkLayoutManager *manager,
                             int              *natural_baseline)
 {
   GtkLayoutManagerClass *klass;
+  int min_size = 0;
+  int nat_size = 0;
+  int min_baseline = -1;
+  int nat_baseline = -1;
+
 
   g_return_if_fail (GTK_IS_LAYOUT_MANAGER (manager));
   g_return_if_fail (GTK_IS_WIDGET (widget));
@@ -272,8 +277,20 @@ gtk_layout_manager_measure (GtkLayoutManager *manager,
 
   klass->measure (manager, widget, orientation,
                   for_size,
-                  minimum, natural,
-                  minimum_baseline, natural_baseline);
+                  &min_size, &nat_size,
+                  &min_baseline, &nat_baseline);
+
+  if (minimum)
+    *minimum = min_size;
+
+  if (natural)
+    *natural = nat_size;
+
+  if (minimum_baseline)
+    *minimum_baseline = min_baseline;
+
+  if (natural_baseline)
+    *natural_baseline = nat_baseline;
 }
 
 /**